package com.wzh.codegen.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wzh.codegen.api.domain.dto.DatasourceQuery;
import com.wzh.codegen.biz.domain.dto.DatasourceDTO;
import com.wzh.codegen.biz.domain.entity.Datasource;
import com.wzh.common.general.result.PageQuery;
import com.wzh.common.general.result.PageResult;

/**
 * 数据源服务接口
 *
 * @author wzh
 * @since 2024-01-01
 */
public interface DatasourceService extends IService<Datasource> {

    /**
     * 分页查询数据源
     *
     * @return 分页结果
     */
    PageResult<DatasourceDTO> page(PageQuery<DatasourceQuery> pageQuery);


    /**
     * 根据ID获取数据源
     *
     * @param id 数据源ID
     * @return 数据源信息
     */
    DatasourceDTO getByIdVo(Long id);

    /**
     * 创建数据源
     *
     * @param dto 数据源信息
     */
    void create(DatasourceDTO dto);

    /**
     * 更新数据源
     *
     * @param dto 数据源信息
     */
    void update(DatasourceDTO dto);

    /**
     * 删除数据源
     *
     * @param id 数据源ID
     */
    void delete(Long id);

    /**
     * 测试数据源连接
     *
     * @param dto 数据源信息
     * @return 测试结果
     */
    String testConnection(DatasourceDTO dto);

}